<!DOCTYPE html>
      <html>
      <head>
      <title>黑马头条-移动端</title>
      <meta charset="utf-8" />
      <style>@charset "UTF-8";
html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote {
  margin: 0;
  padding: 0;
  font-weight: normal;
  -webkit-font-smoothing: antialiased;
}

/* 设置滚动条的样式 */
::-webkit-scrollbar {
  width: 6px;
}

/* 外层轨道 */
::-webkit-scrollbar-track {
  -webkit-box-shadow: inset006pxrgba(255, 0, 0, 0.3);
  background: rgba(0, 0, 0, 0.1);
}

/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
}

::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(0, 0, 0, 0.2);
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", SimSun, sans-serif;
  font-size: 13px;
  line-height: 25px;
  color: #393838;
  position: relative;
}

table {
  margin: 10px 0 15px 0;
  border-collapse: collapse;
}

td,
th {
  border: 1px solid #ddd;
  padding: 3px 10px;
}

th {
  padding: 5px 10px;
}

a, a:link, a:visited {
  color: #34495e;
  text-decoration: none;
}

a:hover, a:focus {
  color: #59d69d;
  text-decoration: none;
}

a img {
  border: none;
}

p {
  padding-left: 10px;
  margin-bottom: 9px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #404040;
  line-height: 36px;
}

h1 {
  color: #2c3e50;
  font-weight: 600;
  margin-bottom: 16px;
  font-size: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid #ddd;
  line-height: 50px;
}

h2 {
  font-size: 28px;
  padding-top: 10px;
  padding-bottom: 10px;
}

h3 {
  clear: both;
  font-weight: 400;
  margin-top: 20px;
  margin-bottom: 20px;
  border-left: 3px solid #59d69d;
  padding-left: 8px;
  font-size: 18px;
}

h4 {
  font-size: 16px;
}

h5 {
  font-size: 14px;
}

h6 {
  font-size: 13px;
}

hr {
  margin: 0 0 19px;
  border: 0;
  border-bottom: 1px solid #ccc;
}

blockquote {
  padding: 13px 13px 21px 15px;
  margin-bottom: 18px;
  font-family: georgia, serif;
  font-style: italic;
}

blockquote:before {
  font-size: 40px;
  margin-left: -10px;
  font-family: georgia, serif;
  color: #eee;
}

blockquote p {
  font-size: 14px;
  font-weight: 300;
  line-height: 18px;
  margin-bottom: 0;
  font-style: italic;
}

code,
pre {
  font-family: Monaco, Andale Mono, Courier New, monospace;
}

code {
  background-color: #fee9cc;
  color: rgba(0, 0, 0, 0.75);
  padding: 1px 3px;
  font-size: 12px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}

pre {
  display: block;
  padding: 14px;
  margin: 0 0 18px;
  line-height: 16px;
  font-size: 11px;
  border: 1px solid #d9d9d9;
  white-space: pre-wrap;
  word-wrap: break-word;
  background: #f6f6f6;
}

pre code {
  background-color: #f6f6f6;
  color: #737373;
  font-size: 11px;
  padding: 0;
}

sup {
  font-size: 0.83em;
  vertical-align: super;
  line-height: 0;
}

* {
  -webkit-print-color-adjust: exact;
}

@media print {
  body,
  code,
  pre code,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    color: black;
  }

  table,
  pre {
    page-break-inside: avoid;
  }
}
html,
body {
  height: 100%;
}

.table-of-contents {
  position: fixed;
  top: 61px;
  left: 0;
  bottom: 0;
  overflow-x: hidden;
  overflow-y: auto;
  width: 260px;
}

.table-of-contents > ul > li > a {
  font-size: 20px;
  margin-bottom: 16px;
  margin-top: 16px;
}

.table-of-contents ul {
  overflow: auto;
  margin: 0px;
  height: 100%;
  padding: 0px 0px;
  box-sizing: border-box;
  list-style-type: none;
}

.table-of-contents ul li {
  padding-left: 20px;
}

.table-of-contents a {
  padding: 2px 0px;
  display: block;
  text-decoration: none;
}

.content-right {
  max-width: 700px;
  margin-left: 290px;
  padding-left: 70px;
  flex-grow: 1;
}
.content-right h2:target {
  padding-top: 80px;
}

body > p {
  margin-left: 30px;
}

body > table {
  margin-left: 30px;
}

body > pre {
  margin-left: 30px;
}

.curProject {
  position: fixed;
  top: 20px;
  font-size: 25px;
  color: black;
  margin-left: -240px;
  width: 240px;
  padding: 5px;
  line-height: 25px;
  box-sizing: border-box;
}

.g-doc {
  margin-top: 56px;
  padding-top: 24px;
  display: flex;
}

.curproject-name {
  font-size: 42px;
}

.m-header {
  background: #32363a;
  height: 56px;
  line-height: 56px;
  padding-left: 60px;
  display: flex;
  align-items: center;
  position: fixed;
  z-index: 9;
  top: 0;
  left: 0;
  right: 0;
}
.m-header .title {
  font-size: 22px;
  color: #fff;
  font-weight: normal;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  margin-left: 16px;
  padding: 0;
  line-height: 56px;
  border: none;
}
.m-header .nav {
  color: #fff;
  font-size: 16px;
  position: absolute;
  right: 32px;
  top: 0;
}
.m-header .nav a {
  color: #fff;
  margin-left: 16px;
  padding: 8px;
  transition: color .2s;
}
.m-header .nav a:hover {
  color: #59d69d;
}

.m-footer {
  border-top: 1px solid #ddd;
  padding-top: 16px;
  padding-bottom: 16px;
}

/*# sourceMappingURL=defaultTheme.css.map */
</style>
      </head>
      <body>
        <div class="m-header">
          <a href="#" style="display: inherit;"><svg class="svg" width="32px" height="32px" viewBox="0 0 64 64" version="1.1"><title>Icon</title><desc>Created with Sketch.</desc><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1"><stop stop-color="#FFFFFF" offset="0%"></stop><stop stop-color="#F2F2F2" offset="100%"></stop></linearGradient><circle id="path-2" cx="31.9988602" cy="31.9988602" r="2.92886048"></circle><filter x="-85.4%" y="-68.3%" width="270.7%" height="270.7%" filterUnits="objectBoundingBox" id="filter-3"><feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur><feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.159703351 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix></filter></defs><g id="首页" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="大屏幕"><g id="Icon"><circle id="Oval-1" fill="url(#linearGradient-1)" cx="32" cy="32" r="32"></circle><path d="M36.7078009,31.8054514 L36.7078009,51.7110548 C36.7078009,54.2844537 34.6258634,56.3695395 32.0579205,56.3695395 C29.4899777,56.3695395 27.4099998,54.0704461 27.4099998,51.7941246 L27.4099998,31.8061972 C27.4099998,29.528395 29.4909575,27.218453 32.0589004,27.230043 C34.6268432,27.241633 36.7078009,29.528395 36.7078009,31.8054514 Z" id="blue" fill="#2359F1" fill-rule="nonzero"></path><path d="M45.2586091,17.1026914 C45.2586091,17.1026914 45.5657231,34.0524383 45.2345291,37.01141 C44.9033351,39.9703817 43.1767091,41.6667796 40.6088126,41.6667796 C38.040916,41.6667796 35.9609757,39.3676862 35.9609757,37.0913646 L35.9609757,17.1034372 C35.9609757,14.825635 38.0418959,12.515693 40.6097924,12.527283 C43.177689,12.538873 45.2586091,14.825635 45.2586091,17.1026914 Z" id="green" fill="#57CF27" fill-rule="nonzero" transform="translate(40.674608, 27.097010) rotate(60.000000) translate(-40.674608, -27.097010) "></path><path d="M28.0410158,17.0465598 L28.0410158,36.9521632 C28.0410158,39.525562 25.9591158,41.6106479 23.3912193,41.6106479 C20.8233227,41.6106479 18.7433824,39.3115545 18.7433824,37.035233 L18.7433824,17.0473055 C18.7433824,14.7695034 20.8243026,12.4595614 23.3921991,12.4711513 C25.9600956,12.4827413 28.0410158,14.7695034 28.0410158,17.0465598 Z" id="red" fill="#FF561B" fill-rule="nonzero" transform="translate(23.392199, 27.040878) rotate(-60.000000) translate(-23.392199, -27.040878) "></path><g id="inner-round"><use fill="black" fill-opacity="1" filter="url(#filter-3)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-2"></use><use fill="#F7F7F7" fill-rule="evenodd" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-2"></use></g></g></g></g></svg></a>
          <a href="#"><h1 class="title">YAPI 接口文档</h1></a>
          <div class="nav">
            <a href="https://yapi.ymfe.org/">YApi</a>
          </div>
        </div>
        <div class="g-doc">
          <div class="table-of-contents"><ul><li><a href="#u95e8u6237">门户</a><ul><li><a href="#u67e5u8be2u6240u6709u5df2u5b9eu73b0u63a5u53e30a3ca20id3du67e5u8be2u6240u6709u5df2u5b9eu73b0u63a5u53e33e203ca3e">查询所有已实现接口
<a id=查询所有已实现接口> </a></a></li></ul></li><li><a href="#u901au77e5">通知</a><ul><li><a href="#u83b7u53d6u7cfbu7edfu516cu544au5185u5bb90a3ca20id3du83b7u53d6u7cfbu7edfu516cu544au5185u5bb93e203ca3e">获取系统公告内容
<a id=获取系统公告内容> </a></a></li><li><a href="#u83b7u53d6u7cfbu7edfu516cu544au5217u88680a3ca20id3du83b7u53d6u7cfbu7edfu516cu544au5217u88683e203ca3e">获取系统公告列表
<a id=获取系统公告列表> </a></a></li></ul></li><li><a href="#u641cu7d22">搜索</a><ul><li><a href="#u5220u9664u7528u6237u641cu7d22u5386u53f20a3ca20id3du5220u9664u7528u6237u641cu7d22u5386u53f23e203ca3e">删除用户搜索历史
<a id=删除用户搜索历史> </a></a></li><li><a href="#u83b7u53d6u641cu7d22u7ed3u679c0a3ca20id3du83b7u53d6u641cu7d22u7ed3u679c3e203ca3e">获取搜索结果
<a id=获取搜索结果> </a></a></li><li><a href="#u83b7u53d6u7528u6237u641cu7d22u5386u53f20a3ca20id3du83b7u53d6u7528u6237u641cu7d22u5386u53f23e203ca3e">获取用户搜索历史
<a id=获取用户搜索历史> </a></a></li><li><a href="#u83b7u53d6u8054u60f3u5efau8baeuff08u81eau52a8u8865u5168uff090a3ca20id3du83b7u53d6u8054u60f3u5efau8baeuff08u81eau52a8u8865u5168uff093e203ca3e">获取联想建议（自动补全）
<a id=获取联想建议（自动补全）> </a></a></li></ul></li><li><a href="#imu901au8baf">IM通讯</a><ul><li><a href="#u5728u7ebfu6d88u606fu901au77e50a3ca20id3du5728u7ebfu6d88u606fu901au77e53e203ca3e">在线消息通知
<a id=在线消息通知> </a></a></li><li><a href="#u5728u7ebfu901au77e5u6d4bu8bd5u63a5u53e30a3ca20id3du5728u7ebfu901au77e5u6d4bu8bd5u63a5u53e33e203ca3e">在线通知测试接口
<a id=在线通知测试接口> </a></a></li><li><a href="#u804au5929u673au5668u4eba0a3ca20id3du804au5929u673au5668u4eba3e203ca3e">聊天机器人
<a id=聊天机器人> </a></a></li></ul></li><li><a href="#u7528u6237">用户</a><ul><li><a href="#u7f16u8f91u7528u6237u4e2au4ebau8d44u6599uff08u5305u542bu5b9eu540du8ba4u8bc1uff090a3ca20id3du7f16u8f91u7528u6237u4e2au4ebau8d44u6599uff08u5305u542bu5b9eu540du8ba4u8bc1uff093e203ca3e">编辑用户个人资料（包含实名认证）
<a id=编辑用户个人资料（包含实名认证）> </a></a></li><li><a href="#u4feeu6539u6307u5b9au7528u6237u9891u90530a3ca20id3du4feeu6539u6307u5b9au7528u6237u9891u90533e203ca3e">修改指定用户频道
<a id=修改指定用户频道> </a></a></li><li><a href="#u5220u9664u6307u5b9au7528u6237u9891u90530a3ca20id3du5220u9664u6307u5b9au7528u6237u9891u90533e203ca3e">删除指定用户频道
<a id=删除指定用户频道> </a></a></li><li><a href="#u5237u65b0u7528u6237token0a3ca20id3du5237u65b0u7528u6237token3e203ca3e">刷新用户token
<a id=刷新用户token> </a></a></li><li><a href="#u53d6u6d88u5173u6ce8u7528u62370a3ca20id3du53d6u6d88u5173u6ce8u7528u62373e203ca3e">取消关注用户
<a id=取消关注用户> </a></a></li><li><a href="#u53d6u6d88u62c9u9ed1u7528u62370a3ca20id3du53d6u6d88u62c9u9ed1u7528u62373e203ca3e">取消拉黑用户
<a id=取消拉黑用户> </a></a></li><li><a href="#u6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u90e8u5206u8986u76d6uff090a3ca20id3du6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u90e8u5206u8986u76d6uff093e203ca3e">批量修改用户频道列表（部分覆盖）
<a id=批量修改用户频道列表（部分覆盖）> </a></a></li><li><a href="#u6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u91cdu7f6eu5f0fuff090a3ca20id3du6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u91cdu7f6eu5f0fuff093e203ca3e">批量修改用户频道列表（重置式）
<a id=批量修改用户频道列表（重置式）> </a></a></li><li><a href="#u6279u91cfu5220u9664u7528u6237u9891u9053u5217u88680a3ca20id3du6279u91cfu5220u9664u7528u6237u9891u9053u5217u88683e203ca3e">批量删除用户频道列表
<a id=批量删除用户频道列表> </a></a></li><li><a href="#u62c9u9ed1u7528u62370a3ca20id3du62c9u9ed1u7528u62373e203ca3e">拉黑用户
<a id=拉黑用户> </a></a></li><li><a href="#u7528u6237u8ba4u8bc1uff08u767bu5f55u6ce8u518cuff090a3ca20id3du7528u6237u8ba4u8bc1uff08u767bu5f55u6ce8u518cuff093e203ca3e">用户认证（登录注册）
<a id=用户认证（登录注册）> </a></a></li><li><a href="#u5173u6ce8u7528u62370a3ca20id3du5173u6ce8u7528u62373e203ca3e">关注用户
<a id=关注用户> </a></a></li><li><a href="#u7f16u8f91u7528u6237u7167u7247u8d44u6599uff08u5934u50cfu3001u8eabu4efdu8bc1u7167u7247uff090a3ca20id3du7f16u8f91u7528u6237u7167u7247u8d44u6599uff08u5934u50cfu3001u8eabu4efdu8bc1u7167u7247uff093e203ca3e">编辑用户照片资料（头像、身份证照片）
<a id=编辑用户照片资料（头像、身份证照片）> </a></a></li><li><a href="#u83b7u53d6u6307u5b9au7528u6237u4fe1u606f0a3ca20id3du83b7u53d6u6307u5b9au7528u6237u4fe1u606f3e203ca3e">获取指定用户信息
<a id=获取指定用户信息> </a></a></li><li><a href="#u83b7u53d6u7528u6237u4e2au4ebau8d44u65990a3ca20id3du83b7u53d6u7528u6237u4e2au4ebau8d44u65993e203ca3e">获取用户个人资料
<a id=获取用户个人资料> </a></a></li><li><a href="#u83b7u53d6u7528u6237u7684u5173u6ce8u5217u88680a3ca20id3du83b7u53d6u7528u6237u7684u5173u6ce8u5217u88683e203ca3e">获取用户的关注列表
<a id=获取用户的关注列表> </a></a></li><li><a href="#u83b7u53d6u7528u6237u7684u7c89u4e1du5217u88680a3ca20id3du83b7u53d6u7528u6237u7684u7c89u4e1du5217u88683e203ca3e">获取用户的粉丝列表
<a id=获取用户的粉丝列表> </a></a></li><li><a href="#u83b7u53d6u7528u6237u7684u7edfu8ba1u6570u636e0a3ca20id3du83b7u53d6u7528u6237u7684u7edfu8ba1u6570u636e3e203ca3e">获取用户的统计数据
<a id=获取用户的统计数据> </a></a></li><li><a href="#u83b7u53d6u7528u6237u81eau5df1u4fe1u606f0a3ca20id3du83b7u53d6u7528u6237u81eau5df1u4fe1u606f3e203ca3e">获取用户自己信息
<a id=获取用户自己信息> </a></a></li><li><a href="#u83b7u53d6u7528u6237u9891u9053u5217u88680a3ca20id3du83b7u53d6u7528u6237u9891u9053u5217u88683e203ca3e">获取用户频道列表
<a id=获取用户频道列表> </a></a></li><li><a href="#u83b7u53d6u77edu4fe1u9a8cu8bc1u78010a3ca20id3du83b7u53d6u77edu4fe1u9a8cu8bc1u78013e203ca3e">获取短信验证码
<a id=获取短信验证码> </a></a></li><li><a href="#u8bbeu7f6eu7528u6237u9891u9053u5217u8868uff08u589eu91cfu5f0fuff090a3ca20id3du8bbeu7f6eu7528u6237u9891u9053u5217u8868uff08u589eu91cfu5f0fuff093e203ca3e">设置用户频道列表（增量式）
<a id=设置用户频道列表（增量式）> </a></a></li></ul></li><li><a href="#u65b0u95fb">新闻</a><ul><li><a href="#u6dfbu52a0u8bc4u8bbau6216u8bc4u8bbau56deu590d0a3ca20id3du6dfbu52a0u8bc4u8bbau6216u8bc4u8bbau56deu590d3e203ca3e">添加评论或评论回复
<a id=添加评论或评论回复> </a></a></li><li><a href="#u4e3eu62a5u6587u7ae00a3ca20id3du4e3eu62a5u6587u7ae03e203ca3e">举报文章
<a id=举报文章> </a></a></li><li><a href="#u53d6u6d88u5bf9u6587u7ae0u4e0du559cu6b220a3ca20id3du53d6u6d88u5bf9u6587u7ae0u4e0du559cu6b223e203ca3e">取消对文章不喜欢
<a id=取消对文章不喜欢> </a></a></li><li><a href="#u53d6u6d88u5bf9u6587u7ae0u70b9u8d5e0a3ca20id3du53d6u6d88u5bf9u6587u7ae0u70b9u8d5e3e203ca3e">取消对文章点赞
<a id=取消对文章点赞> </a></a></li><li><a href="#u53d6u6d88u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e0a3ca20id3du53d6u6d88u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e3e203ca3e">取消对评论或评论回复点赞
<a id=取消对评论或评论回复点赞> </a></a></li><li><a href="#u53d6u6d88u6536u85cfu6587u7ae00a3ca20id3du53d6u6d88u6536u85cfu6587u7ae03e203ca3e">取消收藏文章
<a id=取消收藏文章> </a></a></li><li><a href="#u5bf9u6587u7ae0u4e0du559cu6b220a3ca20id3du5bf9u6587u7ae0u4e0du559cu6b223e203ca3e">对文章不喜欢
<a id=对文章不喜欢> </a></a></li><li><a href="#u5bf9u6587u7ae0u70b9u8d5e0a3ca20id3du5bf9u6587u7ae0u70b9u8d5e3e203ca3e">对文章点赞
<a id=对文章点赞> </a></a></li><li><a href="#u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e0a3ca20id3du5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e3e203ca3e">对评论或评论回复点赞
<a id=对评论或评论回复点赞> </a></a></li><li><a href="#u6536u85cfu6587u7ae00a3ca20id3du6536u85cfu6587u7ae03e203ca3e">收藏文章
<a id=收藏文章> </a></a></li><li><a href="#u5168u90e8u9891u9053u5217u88680a3ca20id3du5168u90e8u9891u9053u5217u88683e203ca3e">全部频道列表
<a id=全部频道列表> </a></a></li><li><a href="#u83b7u53d6u5f53u524du7528u6237u6587u7ae0u5217u88680a3ca20id3du83b7u53d6u5f53u524du7528u6237u6587u7ae0u5217u88683e203ca3e">获取当前用户文章列表
<a id=获取当前用户文章列表> </a></a></li><li><a href="#u83b7u53d6u65b0u95fbu6587u7ae0u8be6u60c50a3ca20id3du83b7u53d6u65b0u95fbu6587u7ae0u8be6u60c53e203ca3e">获取新闻文章详情
<a id=获取新闻文章详情> </a></a></li><li><a href="#u83b7u53d6u7528u6237u6536u85cfu5217u88680a3ca20id3du83b7u53d6u7528u6237u6536u85cfu5217u88683e203ca3e">获取用户收藏列表
<a id=获取用户收藏列表> </a></a></li><li><a href="#u83b7u53d6u7528u6237u6587u7ae0u5217u88680a3ca20id3du83b7u53d6u7528u6237u6587u7ae0u5217u88683e203ca3e">获取用户文章列表
<a id=获取用户文章列表> </a></a></li><li><a href="#u83b7u53d6u7528u6237u9605u8bfbu5386u53f20a3ca20id3du83b7u53d6u7528u6237u9605u8bfbu5386u53f23e203ca3e">获取用户阅读历史
<a id=获取用户阅读历史> </a></a></li><li><a href="#u83b7u53d6u8bc4u8bbau6216u8bc4u8bbau56deu590d0a3ca20id3du83b7u53d6u8bc4u8bbau6216u8bc4u8bbau56deu590d3e203ca3e">获取评论或评论回复
<a id=获取评论或评论回复> </a></a></li><li><a href="#u9605u8bfbu65f6u957fu57cbu70b9u53cdu99880a3ca20id3du9605u8bfbu65f6u957fu57cbu70b9u53cdu99883e203ca3e">阅读时长埋点反馈
<a id=阅读时长埋点反馈> </a></a></li><li><a href="#u9891u9053u65b0u95fbu63a8u8350-v100a3ca20id3du9891u9053u65b0u95fbu63a8u8350-v103e203ca3e">频道新闻推荐_V1.0
<a id=频道新闻推荐_V1.0> </a></a></li><li><a href="#u9891u9053u65b0u95fbu63a8u8350-v110a3ca20id3du9891u9053u65b0u95fbu63a8u8350-v113e203ca3e">频道新闻推荐_V1.1
<a id=频道新闻推荐_V1.1> </a></a></li></ul></li></ul></div>
          <div id="right" class="content-right">
           <h1 class="curproject-name"> 黑马头条-移动端 </h1> 
<h1 id="u95e8u6237">门户</h1>
<p></p>
<h2 id="u67e5u8be2u6240u6709u5df2u5b9eu73b0u63a5u53e30a3ca20id3du67e5u8be2u6240u6709u5df2u5b9eu73b0u63a5u53e33e203ca3e">查询所有已实现接口
<a id=查询所有已实现接口> </a></h2>
<p></p>
<h3 id="">基本信息</h3>
<p><strong>Path：</strong> /app/</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<p>线上接口地址&nbsp;<a href="http://ttapi.research.itcast.cn/app/">http://ttapi.research.itcast.cn/app/</a><br data-tomark-pass=""><br>
<br data-tomark-pass=""><br>
返回已上线接口地址，形如：</p>
<pre><code data-language="json" class="lang-json">{
    "route_map":"/",
    "static":"/static/&lt;path:filename&gt;",
    "user.smsverificationcode":"/v1_0/sms/codes/&lt;mobile:mobile&gt;"
 }
<p></code></pre></p>
<p>键为接口名称<br>
值为接口路径</p>
<h3 id="-2">请求参数</h3>
<h1 id="u901au77e5">通知</h1>
<p></p>
<h2 id="u83b7u53d6u7cfbu7edfu516cu544au5185u5bb90a3ca20id3du83b7u53d6u7cfbu7edfu516cu544au5185u5bb93e203ca3e">获取系统公告内容
<a id=获取系统公告内容> </a></h2>
<p></p>
<h3 id="-3">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/announcements/:target</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/announcements/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-4">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>公告id</td>
</tr>
</tbody>
</table>
<h3 id="-5">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>公告id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>标题</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> content</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>内容</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7cfbu7edfu516cu544au5217u88680a3ca20id3du83b7u53d6u7cfbu7edfu516cu544au5217u88683e203ca3e">获取系统公告列表
<a id=获取系统公告列表> </a></h2>
<p></p>
<h3 id="-6">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/announcements</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/announcements
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-7">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-8">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>标题</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>公告id</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>公告总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h1 id="u641cu7d22">搜索</h1>
<p></p>
<h2 id="u5220u9664u7528u6237u641cu7d22u5386u53f20a3ca20id3du5220u9664u7528u6237u641cu7d22u5386u53f23e203ca3e">删除用户搜索历史
<a id=删除用户搜索历史> </a></h2>
<p></p>
<h3 id="-9">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/search/histories</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/search/histories
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>401 用户认证失败</li>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
</ul>
<h3></h3>
<h3 id="-10">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户Token</td>
</tr>
</tbody>
</table>
<h3 id="-11">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u641cu7d22u7ed3u679c0a3ca20id3du83b7u53d6u641cu7d22u7ed3u679c3e203ca3e">获取搜索结果
<a id=获取搜索结果> </a></h2>
<p></p>
<h3 id="-12">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/search</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/search
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li>401 若传递token，但token过期，则返回401</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-13">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td></td>
<td>身份token，非必须</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
<tr>
<td>q</td>
<td>是</td>
<td></td>
<td>搜索关键词</td>
</tr>
</tbody>
</table>
<h3 id="-14">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-6-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-6-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数</span></td><td key=5></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> collect_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏数</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u641cu7d22u5386u53f20a3ca20id3du83b7u53d6u7528u6237u641cu7d22u5386u53f23e203ca3e">获取用户搜索历史
<a id=获取用户搜索历史> </a></h2>
<p></p>
<h3 id="-15">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/search/histories</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/search/histories
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>401 用户认证失败</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-16">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户Token</td>
</tr>
</tbody>
</table>
<h3 id="-17">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> keywords</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>搜索关键词</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u8054u60f3u5efau8baeuff08u81eau52a8u8865u5168uff090a3ca20id3du83b7u53d6u8054u60f3u5efau8baeuff08u81eau52a8u8865u5168uff093e203ca3e">获取联想建议（自动补全）
<a id=获取联想建议（自动补全）> </a></h2>
<p></p>
<h3 id="-18">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/suggestion</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/suggestion
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数有误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-19">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>q</td>
<td>是</td>
<td></td>
<td>请求的前缀词句</td>
</tr>
</tbody>
</table>
<h3 id="-20">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> options</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>选项词条</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr>
               </tbody>
              </table>
<h1 id="imu901au8baf">IM通讯</h1>
<p></p>
<h2 id="u5728u7ebfu6d88u606fu901au77e50a3ca20id3du5728u7ebfu6d88u606fu901au77e53e203ca3e">在线消息通知
<a id=在线消息通知> </a></h2>
<p></p>
<h3 id="-21">基本信息</h3>
<p><strong>Path：</strong> /app/socket.io/</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1. 此接口为 socket.io 通讯 ， 非HTTP协议， 须使用socket.io客户端，请忽略请求方式</h3>
<h3>2. 接口路径（重要）</h3>
<pre><code data-language="http" class="lang-http">http://ttapi.research.itcast.cn
<p></code></pre></p>
<h5></h5>
<h3>3. 用户token与匿名id必传其一，身份错误会拒绝连接</h3>
<h3>4. 接收事件(event)</h3>
<h5><code data-backticks="1">"following notify"</code> 关注通知</h5>
<p><em>返回字段 <code data-backticks="1">user_id</code>， <code data-backticks="1">user_name</code>， <code data-backticks="1">user_photo</code>， <code data-backticks="1">timestamp</code></em></p>
<h5><code data-backticks="1">"liking notify"</code> 点赞通知</h5>
<p><em>返回字段 <code data-backticks="1">user_id</code>， <code data-backticks="1">user_name</code>， <code data-backticks="1">user_photo</code>， <code data-backticks="1">art_id</code>, <code data-backticks="1">art_title</code>, <code data-backticks="1">timestamp</code></em></p>
<h5><code data-backticks="1">"comment notify"</code> 评论通知</h5>
<p><em>返回字段 <code data-backticks="1">user_id</code>， <code data-backticks="1">user_name</code>， <code data-backticks="1">user_photo</code>， <code data-backticks="1">art_id</code>, <code data-backticks="1">art_title</code>, <code data-backticks="1">timestamp</code></em></p>
<h3 id="-22">请求参数</h3>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>token</td>
<td>否</td>
<td>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token  token与匿名id必传其一  （不用包含Bearer 前缀）</td>
</tr>
<tr>
<td>a</td>
<td>否</td>
<td></td>
<td>匿名id</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>聊天输入内容</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> timestamp</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>聊天发送时间戳</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-23">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> user_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>执行操作的用户id</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> user_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户名</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> user_photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户头像</span></td><td key=5></td></tr><tr key=0-3><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> art_id</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-4><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> art_title</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-5><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> timestamp</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>回复时间戳</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5728u7ebfu901au77e5u6d4bu8bd5u63a5u53e30a3ca20id3du5728u7ebfu901au77e5u6d4bu8bd5u63a5u53e33e203ca3e">在线通知测试接口
<a id=在线通知测试接口> </a></h2>
<p></p>
<h3 id="-24">基本信息</h3>
<p><strong>Path：</strong> /app/imtest/:event</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>liking notify 点赞通知</h3>
<pre><code data-language="http" class="lang-http">http://ttapi.research.itcast.cn/app/imtest/l
</code></pre>
<h3>comment notify  评论通知</h3>
<pre><code data-language="http" class="lang-http">http://ttapi.research.itcast.cn/app/imtest/c
</code></pre>
<h3>following notify  关注通知</h3>
<pre><code data-language="http" class="lang-http">http://ttapi.research.itcast.cn/app/imtest/f
</code></pre>
<h3 id="-25">请求参数</h3>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>f 或 l 或 c 或</td>
<td>通知事件</td>
</tr>
</tbody>
</table>
<h2 id="u804au5929u673au5668u4eba0a3ca20id3du804au5929u673au5668u4eba3e203ca3e">聊天机器人
<a id=聊天机器人> </a></h2>
<p></p>
<h3 id="-26">基本信息</h3>
<p><strong>Path：</strong> /app/socket.io/</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1. 此接口为 socket.io 通讯 ， 非HTTP协议， 须使用socket.io客户端，请忽略请求方式</h3>
<h3>2. 接口路径（重要）</h3>
<pre><code data-language="http" class="lang-http">http://ttapi.research.itcast.cn
<p></code></pre></p>
<h3>3. token与匿名id必传其一，身份错误会拒绝连接</h3>
<h3>4. 发送与接收消息的事件(event) 均为<code data-backticks="1">message</code></h3>
<h3 id="-27">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>token</td>
<td>否</td>
<td>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token  （token与匿名id必传其中之一）不用包含Bearer前缀</td>
</tr>
<tr>
<td>a</td>
<td>否</td>
<td></td>
<td>匿名用户id</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>聊天输入内容</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> timestamp</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>聊天发送时间戳</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-28">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>机器人回复内容</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> timestamp</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>回复时间戳</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h1 id="u7528u6237">用户</h1>
<p></p>
<h2 id="u7f16u8f91u7528u6237u4e2au4ebau8d44u6599uff08u5305u542bu5b9eu540du8ba4u8bc1uff090a3ca20id3du7f16u8f91u7528u6237u4e2au4ebau8d44u6599uff08u5305u542bu5b9eu540du8ba4u8bc1uff093e203ca3e">编辑用户个人资料（包含实名认证）
<a id=编辑用户个人资料（包含实名认证）> </a></h2>
<p></p>
<h3 id="-29">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/profile</p>
<p><strong>Method：</strong> PATCH</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/profile
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误, 图片保存失败</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 请求的字段参数 发送几个保存几个，不发送的不修改</h3>
<h3 id="-30">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> name</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>昵称</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> photo</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>头像 base64编码处理</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> gender</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>性别，0-男，1-女</span></td><td key=5></td></tr><tr key=0-3><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> birthday</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>生日，格式'2018-12-20'</span></td><td key=5></td></tr><tr key=0-4><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> real_name</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>真实姓名</span></td><td key=5></td></tr><tr key=0-5><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> id_number</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证号</span></td><td key=5></td></tr><tr key=0-6><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> id_card_front</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证正面照片 base64编码处理</span></td><td key=5></td></tr><tr key=0-7><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> id_card_back</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证背面照片 base64编码处理</span></td><td key=5></td></tr><tr key=0-8><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> id_card_handheld</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>手持身份证照片 base64编码处理</span></td><td key=5></td></tr><tr key=0-9><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> intro</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>个人介绍</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-31">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>用户名</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>头像url地址</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> gender</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>性别，0-男，1-女</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> birthday</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>生日，格式 '2018-12-20'</span></td><td key=5></td></tr><tr key=0-1-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> real_name</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>真实用户名</span></td><td key=5></td></tr><tr key=0-1-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_number</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证号</span></td><td key=5></td></tr><tr key=0-1-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_front</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证正面照片url</span></td><td key=5></td></tr><tr key=0-1-8><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_back</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证背面照片url</span></td><td key=5></td></tr><tr key=0-1-9><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_handheld</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>手持身份证照片url</span></td><td key=5></td></tr><tr key=0-1-10><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> intro</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>个人介绍</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u4feeu6539u6307u5b9au7528u6237u9891u90530a3ca20id3du4feeu6539u6307u5b9au7528u6237u9891u90533e203ca3e">修改指定用户频道
<a id=修改指定用户频道> </a></h2>
<p></p>
<h3 id="-32">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels/:target</p>
<p><strong>Method：</strong> PUT</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 本接口仅修改对应用户频道的顺序。</h3>
<h3 id="-33">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>频道id</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-34">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5220u9664u6307u5b9au7528u6237u9891u90530a3ca20id3du5220u9664u6307u5b9au7528u6237u9891u90533e203ca3e">删除指定用户频道
<a id=删除指定用户频道> </a></h2>
<p></p>
<h3 id="-35">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>204 删除成功&nbsp;，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
</ul>
<h3>3 本接口仅删除对应用户频道的顺序。</h3>
<h3 id="-36">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>用户频道id</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody">
               </tbody>
              </table>
<h3 id="-37">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5237u65b0u7528u6237token0a3ca20id3du5237u65b0u7528u6237token3e203ca3e">刷新用户token
<a id=刷新用户token> </a></h2>
<p></p>
<h3 id="-38">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/authorizations</p>
<p><strong>Method：</strong> PUT</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/authorizations
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>403&nbsp; refresh_token 未携带或已过期</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-39">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>refresh_token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-40">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> token</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户token</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u5173u6ce8u7528u62370a3ca20id3du53d6u6d88u5173u6ce8u7528u62373e203ca3e">取消关注用户
<a id=取消关注用户> </a></h2>
<p></p>
<h3 id="-41">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/followings/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/followings/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-42">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>目标用户（被取消关注的用户id）</td>
</tr>
</tbody>
</table>
<h3 id="-43">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u62c9u9ed1u7528u62370a3ca20id3du53d6u6d88u62c9u9ed1u7528u62373e203ca3e">取消拉黑用户
<a id=取消拉黑用户> </a></h2>
<p></p>
<h3 id="-44">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/blacklists/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/blacklists/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-45">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>被拉黑的用户id</td>
</tr>
</tbody>
</table>
<h3 id="-46">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u90e8u5206u8986u76d6uff090a3ca20id3du6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u90e8u5206u8986u76d6uff093e203ca3e">批量修改用户频道列表（部分覆盖）
<a id=批量修改用户频道列表（部分覆盖）> </a></h2>
<p></p>
<h3 id="-47">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels</p>
<p><strong>Method：</strong> PATCH</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 本接口对收到的用户频道 新增的保存，原有的覆盖顺序序号，但不会删除未涉及到的用户频道。</h3>
<h3 id="-48">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户关注的频道列表</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-49">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-1-0-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u91cdu7f6eu5f0fuff090a3ca20id3du6279u91cfu4feeu6539u7528u6237u9891u9053u5217u8868uff08u91cdu7f6eu5f0fuff093e203ca3e">批量修改用户频道列表（重置式）
<a id=批量修改用户频道列表（重置式）> </a></h2>
<p></p>
<h3 id="-50">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels</p>
<p><strong>Method：</strong> PUT</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 本接口会先删除用户原有的关注频道，再重新保存用户频道，最终保存的用户频道仅为此接口收到的数据。可作为用户编辑频道时一次做了多个频道的顺序修改、新增、删除等行为的接口。也可作为用户初始频道设置</h3>
<h3 id="-51">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户关注的频道列表</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-52">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-1-0-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u6279u91cfu5220u9664u7528u6237u9891u9053u5217u88680a3ca20id3du6279u91cfu5220u9664u7528u6237u9891u9053u5217u88683e203ca3e">批量删除用户频道列表
<a id=批量删除用户频道列表> </a></h2>
<p></p>
<h3 id="-53">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>204 删除成功&nbsp;，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
</ul>
<h3 id="-54">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> channels</span></td><td key=1><span>integer []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户关注的频道列表</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>integer</span></p></td></tr>
               </tbody>
              </table>
<h3 id="-55">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u62c9u9ed1u7528u62370a3ca20id3du62c9u9ed1u7528u62373e203ca3e">拉黑用户
<a id=拉黑用户> </a></h2>
<p></p>
<h3 id="-56">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/blacklists</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/blacklists
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-57">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-58">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被拉黑的用户id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u7528u6237u8ba4u8bc1uff08u767bu5f55u6ce8u518cuff090a3ca20id3du7528u6237u8ba4u8bc1uff08u767bu5f55u6ce8u518cuff093e203ca3e">用户认证（登录注册）
<a id=用户认证（登录注册）> </a></h2>
<p></p>
<h3 id="-59">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/authorizations</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1. 线上地址</h3>
<p><a href="http://ttapi.research.itcast.cn/app/v1_0/authorizations">http://ttapi.research.itcast.cn/app/v1_0/authorizations</a></p>
<h3>2.&nbsp; 返回HTTP状态码</h3>
<p><strong>1. 201 OK</strong><br>
2. 400 请求参数错误<br>
&nbsp; &nbsp; &nbsp; &nbsp; 包括：参数缺失、手机号格式不正确、验证码失效等<br>
3. 507 服务器数据库异常</p>
<h3>3. token说明</h3>
<ol>
<li><code data-backticks="1">token</code>用于访问需要身份认证的普通接口，有效期2小时</li>
<li><code data-backticks="1">refresh_token</code> 用于在token过期后，获取新的用户token，有效期14天</li>
</ol>
<h3 id="-60">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> mobile</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>手机号</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>短信验证码</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-61">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>数据</span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> token</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户token令牌</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> refresh_token</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用于刷新token的令牌</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5173u6ce8u7528u62370a3ca20id3du5173u6ce8u7528u62373e203ca3e">关注用户
<a id=关注用户> </a></h2>
<p></p>
<h3 id="-62">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/followings</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/followings
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-63">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-64">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被关注的用户id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u7f16u8f91u7528u6237u7167u7247u8d44u6599uff08u5934u50cfu3001u8eabu4efdu8bc1u7167u7247uff090a3ca20id3du7f16u8f91u7528u6237u7167u7247u8d44u6599uff08u5934u50cfu3001u8eabu4efdu8bc1u7167u7247uff093e203ca3e">编辑用户照片资料（头像、身份证照片）
<a id=编辑用户照片资料（头像、身份证照片）> </a></h2>
<p></p>
<h3 id="-65">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/photo</p>
<p><strong>Method：</strong> PATCH</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/photo
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误, 图片保存失败</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 请求的字段参数 发送几个保存几个，不发送的不修改</h3>
<h3 id="-66">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>multipart/form-data</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数类型</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>photo</td>
<td>file</td>
<td>否</td>
<td></td>
<td>头像</td>
</tr>
<tr>
<td>id_card_front</td>
<td>file</td>
<td>否</td>
<td></td>
<td>身份证正面照片</td>
</tr>
<tr>
<td>id_card_back</td>
<td>file</td>
<td>否</td>
<td></td>
<td>身份证背面照片</td>
</tr>
<tr>
<td>id_card_handheld</td>
<td>file</td>
<td>否</td>
<td></td>
<td>手持身份证照片</td>
</tr>
</tbody>
</table>
<h3 id="-67">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>头像url地址</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_front</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证正面照片url</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_back</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>身份证背面照片url</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id_card_handheld</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>手持身份证照片url</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u6307u5b9au7528u6237u4fe1u606f0a3ca20id3du83b7u53d6u6307u5b9au7528u6237u4fe1u606f3e203ca3e">获取指定用户信息
<a id=获取指定用户信息> </a></h2>
<p></p>
<h3 id="-68">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/users/:target</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/users/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 不强制用户登录，匿名用户 关注状态默认否</h3>
<h3 id="-69">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token，可选，登录用户会额外查询是否关了注目标用户</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>目标用户id</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-70">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户名</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户头像</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_media</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否是自媒体，0-否，1-是</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> intro</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>简介</span></td><td key=5></td></tr><tr key=0-1-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> certi</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>自媒体认证说明</span></td><td key=5></td></tr><tr key=0-1-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> art_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布文章数</span></td><td key=5></td></tr><tr key=0-1-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> follow_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注的数目</span></td><td key=5></td></tr><tr key=0-1-8><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> fans_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被关注的数目（粉丝数目）</span></td><td key=5></td></tr><tr key=0-1-9><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被点赞数</span></td><td key=5></td></tr><tr key=0-1-10><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_following</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否关注了用户</span></td><td key=5></td></tr><tr key=0-1-11><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_blacklist</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否拉黑了用户</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u4e2au4ebau8d44u65990a3ca20id3du83b7u53d6u7528u6237u4e2au4ebau8d44u65993e203ca3e">获取用户个人资料
<a id=获取用户个人资料> </a></h2>
<p></p>
<h3 id="-71">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/profile</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/profile
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-72">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-73">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户名</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>头像</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> mobile</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>手机号</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> gender</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>性别，0-男，1-女</span></td><td key=5></td></tr><tr key=0-1-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> birthday</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>生日，格式 '2018-12-20'</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u7684u5173u6ce8u5217u88680a3ca20id3du83b7u53d6u7528u6237u7684u5173u6ce8u5217u88683e203ca3e">获取用户的关注列表
<a id=获取用户的关注列表> </a></h2>
<p></p>
<h3 id="-74">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/followings</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/followings
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-75">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-76">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>所有关注的用户总数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注的用户</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-3-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注的用户id</span></td><td key=5></td></tr><tr key=0-1-3-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注的用户名</span></td><td key=5></td></tr><tr key=0-1-3-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>头像</span></td><td key=5></td></tr><tr key=0-1-3-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> fans_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝数</span></td><td key=5></td></tr><tr key=0-1-3-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> mutual_follow</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否互相关注</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u7684u7c89u4e1du5217u88680a3ca20id3du83b7u53d6u7528u6237u7684u7c89u4e1du5217u88683e203ca3e">获取用户的粉丝列表
<a id=获取用户的粉丝列表> </a></h2>
<p></p>
<h3 id="-77">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/followers</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/followings
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-78">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-79">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>所有粉丝的用户总数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝用户</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-3-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝用户id</span></td><td key=5></td></tr><tr key=0-1-3-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝用户名</span></td><td key=5></td></tr><tr key=0-1-3-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>头像</span></td><td key=5></td></tr><tr key=0-1-3-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> fans_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝数</span></td><td key=5></td></tr><tr key=0-1-3-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> mutual_follow</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否互相关注</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u7684u7edfu8ba1u6570u636e0a3ca20id3du83b7u53d6u7528u6237u7684u7edfu8ba1u6570u636e3e203ca3e">获取用户的统计数据
<a id=获取用户的统计数据> </a></h2>
<p></p>
<h3 id="-80">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/figure</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/figure
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3></h3>
<h3 id="-81">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-82">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> fans_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>粉丝数量</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> read_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作品被阅读的数量</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u81eau5df1u4fe1u606f0a3ca20id3du83b7u53d6u7528u6237u81eau5df1u4fe1u606f3e203ca3e">获取用户自己信息
<a id=获取用户自己信息> </a></h2>
<p></p>
<h3 id="-83">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户认证失败</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 强制用户登录</h3>
<h3 id="-84">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token，必传</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注目标（被关注的用户id）</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-85">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户名</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户头像</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_media</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否是自媒体，0-否，1-是</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> intro</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>简介</span></td><td key=5></td></tr><tr key=0-1-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> certi</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>自媒体认证说明</span></td><td key=5></td></tr><tr key=0-1-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> art_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布文章数</span></td><td key=5></td></tr><tr key=0-1-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> follow_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>关注的数目</span></td><td key=5></td></tr><tr key=0-1-8><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> fans_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被关注的数目（粉丝数目）</span></td><td key=5></td></tr><tr key=0-1-9><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>被点赞数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u9891u9053u5217u88680a3ca20id3du83b7u53d6u7528u6237u9891u9053u5217u88683e203ca3e">获取用户频道列表
<a id=获取用户频道列表> </a></h2>
<p></p>
<h3 id="-86">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 不强制用户登录，匿名用户返回后台设置的默认频道列表</h3>
<h3 id="-87">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户Token，未登录用户为空</td>
</tr>
</tbody>
</table>
<h3 id="-88">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道列表</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道ID</span></td><td key=5></td></tr><tr key=0-1-0-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道名称</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u77edu4fe1u9a8cu8bc1u78010a3ca20id3du83b7u53d6u77edu4fe1u9a8cu8bc1u78013e203ca3e">获取短信验证码
<a id=获取短信验证码> </a></h2>
<p></p>
<h3 id="-89">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/sms/codes/:mobile</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h4>1 线上接口路径</h4>
<p><a href="http://ttapi.research.itcast.cn/app/v1_0/sms/codes/:mobile">http://ttapi.research.itcast.cn/app/v1_0/sms/codes/:mobile</a></p>
<h4>2 接口访问次数受限</h4>
<pre><code>每手机号每分钟1次
<p></code></pre></p>
<h4>3 返回HTTP状态码</h4>
<ol>
<li>200 OK</li>
<li>404 手机号不正确</li>
<li>429 接口访问次数受限 ， body数据返回</li>
</ol>
<pre><code data-language="json" class="lang-json">{
   "message": "Too many requests."
}
<p></code></pre></p>
<ol>
<li>507 服务器数据库异常</li>
</ol>
<h3 id="-90">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>mobile</td>
<td>18612345678</td>
<td>手机号</td>
</tr>
</tbody>
</table>
<h3 id="-91">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>数据</span></td><td key=5></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> mobile</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>手机号</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3>OK</td><td key=4><span>提示信息 ok</span></td><td key=5><p key=2><span style="font-weight: '700'">枚举: </span><span>OK</span></p></td></tr>
               </tbody>
              </table>
<h2 id="u8bbeu7f6eu7528u6237u9891u9053u5217u8868uff08u589eu91cfu5f0fuff090a3ca20id3du8bbeu7f6eu7528u6237u9891u9053u5217u8868uff08u589eu91cfu5f0fuff093e203ca3e">设置用户频道列表（增量式）
<a id=设置用户频道列表（增量式）> </a></h2>
<p></p>
<h3 id="-92">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/channels</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>409 已存在用户关注的频道，冲突</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 本接口仅保存数据，不会覆盖用户原有已关注的频道，遇到已经保存过的数据会返回409，可作为用户初次设置频道或新增频道使用</h3>
<h3 id="-93">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户令牌token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户关注的频道列表</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-94">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-1-0-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> seq</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>顺序序号</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h1 id="u65b0u95fb">新闻</h1>
<p></p>
<h2 id="u6dfbu52a0u8bc4u8bbau6216u8bc4u8bbau56deu590d0a3ca20id3du6dfbu52a0u8bc4u8bbau6216u8bc4u8bbau56deu590d3e203ca3e">添加评论或评论回复
<a id=添加评论或评论回复> </a></h2>
<p></p>
<h3 id="-95">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/comments</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/comments
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>403 文章已关闭评论</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-96">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论的目标id（评论文章即为文章id，对评论进行回复则为评论id）</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> content</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论内容</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> art_id</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-97">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> com_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>新建的评论id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论所属的目标id</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论所属的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u4e3eu62a5u6587u7ae00a3ca20id3du4e3eu62a5u6587u7ae03e203ca3e">举报文章
<a id=举报文章> </a></h2>
<p></p>
<h3 id="-98">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/reports</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/reports
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>409 此用户已举报过该文章（冲突）</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-99">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>举报的文章id</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>举报类型：
0-其他问题，1-标题夸张，2-低俗色情，3-错别字多，4-旧闻重复，5-广告软文，6-内容不实，7-涉嫌违法犯罪，8-侵权'
</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> remark</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>其他问题 的附加说明</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-100">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>举报的文章id</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>举报类型</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u5bf9u6587u7ae0u4e0du559cu6b220a3ca20id3du53d6u6d88u5bf9u6587u7ae0u4e0du559cu6b223e203ca3e">取消对文章不喜欢
<a id=取消对文章不喜欢> </a></h2>
<p></p>
<h3 id="-101">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/dislikes/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/dislikes/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-102">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>文章id</td>
</tr>
</tbody>
</table>
<h3 id="-103">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u5bf9u6587u7ae0u70b9u8d5e0a3ca20id3du53d6u6d88u5bf9u6587u7ae0u70b9u8d5e3e203ca3e">取消对文章点赞
<a id=取消对文章点赞> </a></h2>
<p></p>
<h3 id="-104">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/likings/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/likings/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-105">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>文章id</td>
</tr>
</tbody>
</table>
<h3 id="-106">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e0a3ca20id3du53d6u6d88u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e3e203ca3e">取消对评论或评论回复点赞
<a id=取消对评论或评论回复点赞> </a></h2>
<p></p>
<h3 id="-107">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/comment/likings/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/comment/likings/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-108">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td>要取消点赞的评论id或评论回复id</td>
</tr>
</tbody>
</table>
<h3 id="-109">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u53d6u6d88u6536u85cfu6587u7ae00a3ca20id3du53d6u6d88u6536u85cfu6587u7ae03e203ca3e">取消收藏文章
<a id=取消收藏文章> </a></h2>
<p></p>
<h3 id="-110">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/collections/:target</p>
<p><strong>Method：</strong> DELETE</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/collections/:target
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li><strong>204 取消成功，注意这是本接口成功调用的返回状态码，body没有数据（没有默认的message）</strong></li>
<li>401 用户未认证</li>
<li>404 访问路径错误</li>
<li>507 数据库异常</li>
</ul>
<h3 id="-111">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/x-www-form-urlencoded</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>target</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="-112">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5bf9u6587u7ae0u4e0du559cu6b220a3ca20id3du5bf9u6587u7ae0u4e0du559cu6b223e203ca3e">对文章不喜欢
<a id=对文章不喜欢> </a></h2>
<p></p>
<h3 id="-113">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/dislikes</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/dislikes
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-114">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>不喜欢的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-115">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>不喜欢的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5bf9u6587u7ae0u70b9u8d5e0a3ca20id3du5bf9u6587u7ae0u70b9u8d5e3e203ca3e">对文章点赞
<a id=对文章点赞> </a></h2>
<p></p>
<h3 id="-116">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/likings</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/likings
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-117">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-118">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>点赞的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e0a3ca20id3du5bf9u8bc4u8bbau6216u8bc4u8bbau56deu590du70b9u8d5e3e203ca3e">对评论或评论回复点赞
<a id=对评论或评论回复点赞> </a></h2>
<p></p>
<h3 id="-119">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/comment/likings</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/comment/likings
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3 id="-120">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞的评论id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-121">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>点赞的评论id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u6536u85cfu6587u7ae00a3ca20id3du6536u85cfu6587u7ae03e203ca3e">收藏文章
<a id=收藏文章> </a></h2>
<p></p>
<h3 id="-122">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/collections</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/collections
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>401 用户未认证</li>
<li>507 数据库错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 在请求头Trace 中传递collect埋点参数</h3>
<h3 id="-123">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token</td>
</tr>
<tr>
<td>Trace</td>
<td></td>
<td>是</td>
<td></td>
<td>collect埋点参数</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏的目标文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-124">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏的文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u5168u90e8u9891u9053u5217u88680a3ca20id3du5168u90e8u9891u9053u5217u88683e203ca3e">全部频道列表
<a id=全部频道列表> </a></h2>
<p></p>
<h3 id="-125">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/channels</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/channels
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-126">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="-127">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> channels</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道id</span></td><td key=5></td></tr><tr key=0-1-0-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>频道名称</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u5f53u524du7528u6237u6587u7ae0u5217u88680a3ca20id3du83b7u53d6u5f53u524du7528u6237u6587u7ae0u5217u88683e203ca3e">获取当前用户文章列表
<a id=获取当前用户文章列表> </a></h2>
<p></p>
<h3 id="-128">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/articles</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/articles
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>401 用户未认证</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-129">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-130">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-6-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-6-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数</span></td><td key=5></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> collect_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏数</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u65b0u95fbu6587u7ae0u8be6u60c50a3ca20id3du83b7u53d6u65b0u95fbu6587u7ae0u8be6u60c53e203ca3e">获取新闻文章详情
<a id=获取新闻文章详情> </a></h2>
<p></p>
<h3 id="-131">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/articles/:article_id</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h4>1. 说明</h4>
<p>本接口不包含文章评论，文章评论在另外的接口。</p>
<h4>2. 线上地址</h4>
<p><a href="http://ttapi.research.itcast.cn/app/v1_0/articles/:article_id">http://ttapi.research.itcast.cn/app/v1_0/articles/:article_id</a><br>
如http://ttapi.research.itcast.cn/app/v1_0/articles/1</p>
<h4>3. 返回HTTP状态码说明</h4>
<ol>
<li>200 OK</li>
<li>404 文章不存在</li>
<li>507 服务器数据库异常</li>
</ol>
<h4>4. 在Trace 请求头中传递click埋点参数</h4>
<h3 id="-132">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td>jwt token</td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户身份token，匿名用户无需携带</td>
</tr>
<tr>
<td>Trace</td>
<td></td>
<td>是</td>
<td></td>
<td>click的埋点参数</td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>article_id</td>
<td></td>
<td>文章id</td>
</tr>
</tbody>
</table>
<h3 id="-133">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息 OK</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>数据</span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章ID</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布日期</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名</span></td><td key=5></td></tr><tr key=0-1-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> aut_photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者头像url 无图片，默认为null</span></td><td key=5></td></tr><tr key=0-1-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_followed</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否关注了作者</span></td><td key=5></td></tr><tr key=0-1-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> attitude</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户对文章的态度, -1: 无态度，0-不喜欢，1-点赞</span></td><td key=5></td></tr><tr key=0-1-8><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> content</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章内容</span></td><td key=5></td></tr><tr key=0-1-9><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> recomments</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>相关文章推荐，无推荐为空数组</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-9-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-9-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-9-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> tracking</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>埋点参数</span></td><td key=5></td></tr><tr key=0-1-10><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> is_collected</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否收藏了文章</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u6536u85cfu5217u88680a3ca20id3du83b7u53d6u7528u6237u6536u85cfu5217u88683e203ca3e">获取用户收藏列表
<a id=获取用户收藏列表> </a></h2>
<p></p>
<h3 id="-134">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/article/collections</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/article/collections
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>401 用户未认证</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-135">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-136">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-6-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-6-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数</span></td><td key=5></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> collect_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏数</span></td><td key=5></td></tr><tr key=0-1-2-9><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_liking</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否对文章点赞</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u6587u7ae0u5217u88680a3ca20id3du83b7u53d6u7528u6237u6587u7ae0u5217u88683e203ca3e">获取用户文章列表
<a id=获取用户文章列表> </a></h2>
<p></p>
<h3 id="-137">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/users/:user_id/articles</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/users/:user_id/articles
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-138">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>路径参数</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>user_id</td>
<td></td>
<td>用户id</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-139">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-6-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-6-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数</span></td><td key=5></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> collect_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏数</span></td><td key=5></td></tr><tr key=0-1-2-9><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_liking</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否点赞</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u7528u6237u9605u8bfbu5386u53f20a3ca20id3du83b7u53d6u7528u6237u9605u8bfbu5386u53f23e203ca3e">获取用户阅读历史
<a id=获取用户阅读历史> </a></h2>
<p></p>
<h3 id="-140">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/user/histories</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/user/histories
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>401 用户未认证</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-141">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td>用户token</td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-142">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-6-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-6-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数</span></td><td key=5></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> collect_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>收藏数</span></td><td key=5></td></tr><tr key=0-1-2-9><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_liking</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否对文章点赞</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章总数</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u83b7u53d6u8bc4u8bbau6216u8bc4u8bbau56deu590d0a3ca20id3du83b7u53d6u8bc4u8bbau6216u8bc4u8bbau56deu590d3e203ca3e">获取评论或评论回复
<a id=获取评论或评论回复> </a></h2>
<p></p>
<h3 id="-143">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/comments</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/comments
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li>507 数据库错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3 id="-144">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>type</td>
<td>是</td>
<td>a或c</td>
<td>评论类型，a-对文章(article)的评论，c-对评论(comment)的回复</td>
</tr>
<tr>
<td>source</td>
<td>是</td>
<td></td>
<td>源id，文章id或评论id</td>
</tr>
<tr>
<td>offset</td>
<td>否</td>
<td></td>
<td>获取评论数据的偏移量，值为评论id，表示从此id的数据向后取，不传表示从第一页开始读取数据</td>
</tr>
<tr>
<td>limit</td>
<td>否</td>
<td></td>
<td>获取的评论数据个数，不传表示采用后端服务设定的默认每页数据量</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> target</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论的目标id（评论文章即为文章id，对评论进行回复则为评论id）</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> content</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论内容</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>integer</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-145">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> total_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>该文章的评论总数 或 该评论的回复总数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> end_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>所有评论或回复的最后一个id（截止offset值，小于此值的offset可以不用发送请求获取评论数据，已经没有数据），若无评论或回复数据，则值为NULL</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> last_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>本次返回结果的最后一个评论id，作为请求下一页数据的offset参数，若本次无具体数据，则值为NULL</span></td><td key=5></td></tr><tr key=0-1-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论或回复的内容</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-3-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> com_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论或回复id</span></td><td key=5></td></tr><tr key=0-1-3-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论或回复的用户id</span></td><td key=5></td></tr><tr key=0-1-3-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户名称</span></td><td key=5></td></tr><tr key=0-1-3-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_photo</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户头像url</span></td><td key=5></td></tr><tr key=0-1-3-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> like_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点赞数量</span></td><td key=5></td></tr><tr key=0-1-3-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> reply_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>回复数量</span></td><td key=5></td></tr><tr key=0-1-3-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>创建时间</span></td><td key=5></td></tr><tr key=0-1-3-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> content</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论或回复内容</span></td><td key=5></td></tr><tr key=0-1-3-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_top</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否置顶，0-不置顶，1-置顶</span></td><td key=5></td></tr><tr key=0-1-3-9><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_liking</span></td><td key=1><span>boolean</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前用户是否点赞</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u9605u8bfbu65f6u957fu57cbu70b9u53cdu99880a3ca20id3du9605u8bfbu65f6u957fu57cbu70b9u53cdu99883e203ca3e">阅读时长埋点反馈
<a id=阅读时长埋点反馈> </a></h2>
<p></p>
<h3 id="-146">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/reading/durations</p>
<p><strong>Method：</strong> POST</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/reading/durations
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>400 请求参数错误</li>
<li><strong>201 OK</strong></li>
</ul>
<h3>3 在请求头Trace 中传递read埋点参数</h3>
<h3 id="-147">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Trace</td>
<td></td>
<td>是</td>
<td></td>
<td>read埋点参数</td>
</tr>
</tbody>
</table>
<p><strong>Body</strong></p>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> duration</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>阅读时长 秒数</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h3 id="-148">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u9891u9053u65b0u95fbu63a8u8350-v100a3ca20id3du9891u9053u65b0u95fbu63a8u8350-v103e203ca3e">频道新闻推荐_V1.0
<a id=频道新闻推荐_V1.0> </a></h2>
<p></p>
<h3 id="-149">基本信息</h3>
<p><strong>Path：</strong> /app/v1_0/articles</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_0/articles
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 增加了埋点参数</h3>
<h3>4 Authorization 请求头说明</h3>
<h5>1） Bearer 开头为已认证用户的token</h5>
<h5>2） Anony 开头为匿名用户的手机识别码</h5>
<h3 id="-150">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td></td>
</tr>
</tbody>
</table>
<p>或者<br>
Anony xxxxxxxxxxxxxxxxxxxx |  用户身份token 或 匿名用户手机识别码 |<br>
<strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>channel_id</td>
<td>是</td>
<td></td>
<td>频道ID</td>
</tr>
<tr>
<td>page</td>
<td>否</td>
<td></td>
<td>页数，不传默认为1</td>
</tr>
<tr>
<td>per_page</td>
<td>否</td>
<td></td>
<td>每页数量，不传每页数量由后端决定</td>
</tr>
</tbody>
</table>
<h3 id="-151">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>当前页数</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> per_page</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>每页数量</span></td><td key=5></td></tr><tr key=0-1-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-2-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-2-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-2-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-2-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-2-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-2-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-2-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_top</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否置顶，0-不置顶，1-置顶</span></td><td key=5></td></tr><tr key=0-1-2-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-2-7-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-2-7-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-2-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> trace</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>埋点参数</span></td><td key=5></td></tr><tr key=0-1-2-8-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> click</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点击文章，进入文章详情页时反馈</span></td><td key=5></td></tr><tr key=0-1-2-8-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> collect</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户点击收藏文章时反馈</span></td><td key=5></td></tr><tr key=0-1-2-8-2><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> share</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户分享时反馈</span></td><td key=5></td></tr><tr key=0-1-2-8-3><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> read</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户的阅读时长，退出详情页时反馈</span></td><td key=5></td></tr>
               </tbody>
              </table>
<h2 id="u9891u9053u65b0u95fbu63a8u8350-v110a3ca20id3du9891u9053u65b0u95fbu63a8u8350-v113e203ca3e">频道新闻推荐_V1.1
<a id=频道新闻推荐_V1.1> </a></h2>
<p></p>
<h3 id="-152">基本信息</h3>
<p><strong>Path：</strong> /app/v1_1/articles</p>
<p><strong>Method：</strong> GET</p>
<p><strong>接口描述：</strong></p>
<h3>1 线上地址</h3>
<pre><code data-language="url" class="lang-url">http://ttapi.research.itcast.cn/app/v1_1/articles
<p></code></pre></p>
<h3>2 返回状态码</h3>
<ul>
<li>507 数据库错误</li>
<li>400 请求参数错误</li>
<li><strong>200 OK</strong></li>
</ul>
<h3>3 增加了埋点参数</h3>
<h3>4 Authorization 请求头说明</h3>
<h5>1） Bearer 开头为已认证用户的token</h5>
<h5>2） Anony 开头为匿名用户的手机识别码</h5>
<h3 id="-153">请求参数</h3>
<p><strong>Headers</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>参数值</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content-Type</td>
<td>application/json</td>
<td>是</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Authorization</td>
<td></td>
<td>是</td>
<td>Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDMyODQzNjYsInVzZXJfaWQiOjF9.mLYitrKsn4E4KdQd0CNPugKrH8uQmXEQTlG_JutC8jU</td>
<td></td>
</tr>
</tbody>
</table>
<p>或者<br>
Anony xxxxxxxxxxxxxxxxxxxx |  用户身份token 或 匿名用户手机识别码 |<br>
<strong>Query</strong></p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必须</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>channel_id</td>
<td>是</td>
<td></td>
<td>频道ID</td>
</tr>
<tr>
<td>timestamp</td>
<td>是</td>
<td>时间戳整数 单位毫秒</td>
<td>时间戳，请求新的推荐数据传当前的时间戳，请求历史推荐传指定的时间戳</td>
</tr>
<tr>
<td>with_top</td>
<td>是</td>
<td>0或1</td>
<td>是否包含置顶，进入页面第一次请求时要包含置顶文章，1-包含置顶，0-不包含</td>
</tr>
</tbody>
</table>
<h3 id="-154">返回数据</h3>
<table>
  <thead class="ant-table-thead">
    <tr>
      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
    </tr>
  </thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> message</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>提示信息</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> pre_timestamp</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>请求前一页历史数据的时间戳</span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> results</span></td><td key=1><span>object []</span></td><td key=2>必须</td><td key=3></td><td key=4><span></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-1-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> art_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章id</span></td><td key=5></td></tr><tr key=0-1-1-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> title</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>文章标题</span></td><td key=5></td></tr><tr key=0-1-1-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_id</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者id</span></td><td key=5></td></tr><tr key=0-1-1-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> aut_name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>作者名称</span></td><td key=5></td></tr><tr key=0-1-1-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> comm_count</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>评论数量</span></td><td key=5></td></tr><tr key=0-1-1-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> pubdate</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>发布时间</span></td><td key=5></td></tr><tr key=0-1-1-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> is_top</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>是否置顶，0-不置顶，1-置顶</span></td><td key=5></td></tr><tr key=0-1-1-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> cover</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面</span></td><td key=5></td></tr><tr key=0-1-1-7-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>integer</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面类型，0-无封面，1-1张封面图片，3-3张封面</span></td><td key=5></td></tr><tr key=0-1-1-7-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> images</span></td><td key=1><span>string []</span></td><td key=2>必须</td><td key=3></td><td key=4><span>封面图片</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=0-1-1-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> trace</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span>埋点参数</span></td><td key=5></td></tr><tr key=0-1-1-8-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> click</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>点击文章，进入文章详情页时反馈</span></td><td key=5></td></tr><tr key=0-1-1-8-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> collect</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户点击收藏文章时反馈</span></td><td key=5></td></tr><tr key=0-1-1-8-2><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> share</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户分享时反馈</span></td><td key=5></td></tr><tr key=0-1-1-8-3><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> read</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span>用户的阅读时长，退出详情页时反馈</span></td><td key=5></td></tr>
               </tbody>
              </table>

            <footer class="m-footer">
              <p>Build by <a href="https://ymfe.org/">YMFE</a>.</p>
            </footer>
          </div>
        </div>
      </body>
      </html>
      